package br.gov.mi.corporativo.dominio.rhmi;

// Generated 17/11/2014 09:46:12 by Hibernate Tools 4.0.0

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

import org.hibernate.annotations.Immutable;

/**
 * FuncionarioEscolaridade generated by hbm2java
 */
@Entity @Immutable
@Table(schema = "DES_RHMI", name = "FUNCIONARIO_ESCOLARIDADE", uniqueConstraints = @UniqueConstraint(columnNames = {
		"ID_FUNCIONARIO", "ID_INSTITUICAO_ENSINO", "ID_TIPO_ESCOLARIDADE",
		"DT_INICIO" }))
public final class FuncionarioEscolaridade implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1893555722511279275L;
	
	@Id
	@Column(name = "ID_FUNCIONARIO_ESCOLARIDADE", unique = true, nullable = false, precision = 22, scale = 0)
	private Long idFuncionarioEscolaridade;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_FUNCIONARIO", nullable = false)
	private Funcionario funcionario;
	
	@Column(name = "ID_INSTITUICAO_ENSINO", nullable = false, precision = 22, scale = 0)
	private Long idInstituicaoEnsino;
	
	@Column(name = "ID_TIPO_ESCOLARIDADE", nullable = false, precision = 2, scale = 0)
	private Long idTipoEscolaridade;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_INICIO", nullable = false, length = 7)
	private Date dtInicio;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_CONCLUSAO", length = 7)
	private Date dtConclusao;

	public FuncionarioEscolaridade() {
	}

	public FuncionarioEscolaridade(Long idFuncionarioEscolaridade,
			Funcionario funcionario, Long idInstituicaoEnsino,
			Long idTipoEscolaridade, Date dtInicio) {
		this.idFuncionarioEscolaridade = idFuncionarioEscolaridade;
		this.funcionario = funcionario;
		this.idInstituicaoEnsino = idInstituicaoEnsino;
		this.idTipoEscolaridade = idTipoEscolaridade;
		this.dtInicio = dtInicio;
	}

	public FuncionarioEscolaridade(Long idFuncionarioEscolaridade,
			Funcionario funcionario, Long idInstituicaoEnsino,
			Long idTipoEscolaridade, Date dtInicio, Date dtConclusao) {
		this.idFuncionarioEscolaridade = idFuncionarioEscolaridade;
		this.funcionario = funcionario;
		this.idInstituicaoEnsino = idInstituicaoEnsino;
		this.idTipoEscolaridade = idTipoEscolaridade;
		this.dtInicio = dtInicio;
		this.dtConclusao = dtConclusao;
	}

	
	public Long getIdFuncionarioEscolaridade() {
		return this.idFuncionarioEscolaridade;
	}

	
	public Funcionario getFuncionario() {
		return this.funcionario;
	}

	
	public Long getIdInstituicaoEnsino() {
		return this.idInstituicaoEnsino;
	}


	public Long getIdTipoEscolaridade() {
		return this.idTipoEscolaridade;
	}

	
	public Date getDtInicio() {
		return this.dtInicio;
	}

	
	public Date getDtConclusao() {
		return this.dtConclusao;
	}

}
